MySQL中的字符串拼接函数详解 | 您所在的位置:网站首页 › mysql 字段拼接字符串 › MySQL中的字符串拼接函数详解 |
CONCAT函数 功能:连接一个或多个字符串,然后返回连接后的字符串。 函数形式:CONCAT(str1,str2,…) 示例1:单个字符串连接 mysql> select concat('Hello'); +-----------------+ | concat('Hello') | +-----------------+ | Hello | +-----------------+ 1 row in set (0.00 sec)示例2:连接多个字符串 mysql> select concat('Hello',' ','world'); +-----------------------------+ | concat('Hello',' ','world') | +-----------------------------+ | Hello world | +-----------------------------+ 1 row in set (0.00 sec)示例3:任意连接的字符串为NULL,则连接后返回的结果也为NULL mysql> select concat('Hello',' ','world',null); +----------------------------------+ | concat('Hello',' ','world',null) | +----------------------------------+ | NULL | +----------------------------------+ 1 row in set (0.00 sec)CONCAT_WS函数 功能:通过指定的“连接符”连接一个或多个字符串,然后返回连接后的字符串。 函数形式:CONCAT_WS(separator,str1,str2,…) 示例1:通过下划线连接多个字符串 mysql> select concat_ws('_','功能编号','需求编号','用例编号'); +-------------------------------------------------------------+ | concat_ws('_','功能编号','需求编号','用例编号') | +-------------------------------------------------------------+ | 功能编号_需求编号_用例编号 | +-------------------------------------------------------------+ 1 row in set (0.00 sec)示例2:当连接的字符串中存在NULL时,则连接后返回的结果不为NULL mysql> select concat_ws('_','功能编号','需求编号','用例编号',null); +------------------------------------------------------------------+ | concat_ws('_','功能编号','需求编号','用例编号',null) | +------------------------------------------------------------------+ | 功能编号_需求编号_用例编号 | +------------------------------------------------------------------+ 1 row in set (0.00 sec)示例3:当分隔符为null时,则返回的结果也为NULL mysql> select concat_ws(null,'功能编号','需求编号','用例编号'); +--------------------------------------------------------------+ | concat_ws(null,'功能编号','需求编号','用例编号') | +--------------------------------------------------------------+ | NULL | +--------------------------------------------------------------+ 1 row in set (0.00 sec)GROUP_CONCAT函数 功能:将属于同一分组的值进行连接,然后按分组返回结果字符串。 函数形式:GROUP_CONCAT(expr) 示例数据,假设Course表存在以下数据 mysql> select * from Course; +-------+--------------+ | stuId | courseName | +-------+--------------+ | 1001 | 大学语文 | | 1001 | 原理力学 | | 1001 | 固体物理 | | 1002 | 大学英语 | | 1002 | 专八英语 | +-------+--------------+ 5 rows in set (0.00 sec)示例1:获取每个学生的所有课程,并在一行显示 mysql> SELECT stuId, GROUP_CONCAT(courseName) AS courses FROM Course GROUP BY stuId; +-------+----------------------------------------+ | stuId | courses | +-------+----------------------------------------+ | 1001 | 大学语文,原理力学,固体物理 | | 1002 | 大学英语,专八英语 | +-------+----------------------------------------+ 2 rows in set (0.02 sec)示例2:GROUP_CONCAT的默认分隔符为“,”,也可通过SEPARATOR定义分隔符 mysql> SELECT stuId, GROUP_CONCAT(courseName SEPARATOR '&&') AS courses FROM Course GROUP BY stuId; +-------+------------------------------------------+ | stuId | courses | +-------+------------------------------------------+ | 1001 | 大学语文&&原理力学&&固体物理 | | 1002 | 大学英语&&专八英语 | +-------+------------------------------------------+ 2 rows in set (0.00 sec)示例3:对同一分组内的值进行排序后在连接 mysql> SELECT stuId, GROUP_CONCAT(courseName ORDER BY courseName desc) AS courses FROM Course GROUP BY stuId; +-------+----------------------------------------+ | stuId | courses | +-------+----------------------------------------+ | 1001 | 大学语文,固体物理,原理力学 | | 1002 | 大学英语,专八英语 | +-------+----------------------------------------+ 2 rows in set (0.00 sec) |
CopyRight 2018-2019 实验室设备网 版权所有 |